const fetch = require('../../utils/fetch')

Page({
  /**
   * 页面的初始数据
   */
  data: {
    category: null,
    shops: [],
    pageIndex: 0,
    pageSize: 20,
    totalCount: 0,
    hasMore: true
  },

  loadMore () {
    let { pageIndex, pageSize, searchText } = this.data
    const params = { _page: ++pageIndex, _limit: pageSize }
    if (searchText) params.q = searchText

    return fetch(`/categories/${this.data.category.id}/shops`, params)
      .then(res => {
        const totalCount = parseInt(res.header['X-Total-Count'])
        const hasMore = this.data.pageIndex * this.data.pageSize < totalCount
        const shops = this.data.shops.concat(res.data)
        this.setData({ shops, totalCount, pageIndex, hasMore })
      })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad (options) {
    fetch(`/categories/${options.cat}`)
      .then(res => {
        this.setData({ category: res.data })
        wx.setNavigationBarTitle({ title: res.data.name })

        this.loadMore()
      })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh () {
    this.setData({ shops: [], pageIndex: 0, hasMore: true })
    this.loadMore().then(() => wx.stopPullDownRefresh())
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom () {
    // TODO：节流
    this.loadMore()
  },

  searchHandle () {
    // console.log(this.data.searchText)
    this.setData({ shops: [], pageIndex: 0, hasMore: true })
    this.loadMore()
  },

  showSearchHandle () {
    this.setData({ searchShowed: true })
  },
  hideSearchHandle () {
    this.setData({ searchText: '', searchShowed: false })
  },
  clearSearchHandle () {
    this.setData({ searchText: '' })
  },
  searchChangeHandle (e) {
    this.setData({ searchText: e.detail.value })
  }
})


// const fetch = require('../../utils/fetch')

// // pages/list/list.js
// Page({

//   /**
//    * 页面的初始数据
//    */
//   data: {
//     // 当前加载的分类
//     category: {},
//     // 此分类下的全部店铺
//     shops: [],
//     // 默认页面
//     pageIndex: 0,
//     // 默认每页数据条数
//     pageSize: 20,
//     hasMore: true
//   },
//     // 封装 
//     // 加载下一页数据
//   loadMore(){
//     //如果有数据就继续加载
//     if(!this.data.hasMore) return
//     // 解构赋值
//     let {pageIndex,pageSize} = this.data
//     const params = {_page: ++pageIndex, _limit: pageSize }
//     fetch(`/categories/${this.data.category.id}/shops`,params)
//     .then(res => {
//        // 追加设置(上拉加载更多)
//        const totalCount = parseInt(res.header['X-Total-Count'])
//        const hasMore = this.data.pageIndex * this.data.pageSize < totalCount
//        const shops = this.data.shops.concat(res.data)
//        this.setData({ shops, totalCount, pageIndex, hasMore })
//       })
//   },
//   /**
//    * 生命周期函数--监听页面加载
//    */
//   onLoad: function (options) {
//     fetch(`categories/${options.cat}`).then(res =>{
//     //   // 这里不能确定一定在 onReady 过后执行
//     //   wx.setNavigationBarTitle({
//     //     title: res.data.name
//     //   })
    
//     this.setData({ category: res.data })
//     wx.setNavigationBarTitle({
//       title: res.data.name
//     })

//     // 加载完分类信息过后再去加载商铺信息
//     this.loadMore()
//     })
//   },

//   /**
//    * 生命周期函数--监听页面初次渲染完成
//    */
//   // onReady: function () {
//   //   if(this.data.category.name){
//   //     wx.setNavigationBarTitle({
//   //       title: this.res.data.name
//   //     })

//   //     // 加载完分类信息过后再去加载商铺信息
//   //     return fetch(`/categories/${this.data.category.id}/shops`,{_page: 1 , _limit: 10})
//   //     .then(res => {
//   //       this.setData({shops: res.data})
//   //     })
//   //   }
//   // },

//   /**
//    * 生命周期函数--监听页面显示
//    */
//   onShow: function () {

//   },

//   /**
//    * 生命周期函数--监听页面隐藏
//    */
//   onHide: function () {

//   },

//   /**
//    * 生命周期函数--监听页面卸载
//    */
//   onUnload: function () {

//   },

//   /**
//    * 页面相关事件处理函数--监听用户下拉动作
//    */
//   onPullDownRefresh: function () {

//   },

//   /**
//    * 页面上拉触底事件的处理函数
//    */
//   onReachBottom: function () {
//     console.log('到底了')
//     // 在这里加载下一页数据
//     this.loadMore()
//   },

//   /**
//    * 用户点击右上角分享
//    */
//   onShareAppMessage: function () {

//   }
// })